import java.awt.Graphics;
import java.awt.Image;


public class Explosion {
	
	public Image image;
	public int x, y;
	
	public boolean active;
	
	public int count;	//전체 이미지에 포함된 단위 이미지 갯수
	public int width;	//단위 이미지의 넓이
	public int height;	//단위 이미지의 높이
	
	private int currentIndex = -1;//현재 표시할 단위 이미지 위치
	
	private long prevChangedTime = 0;
	private long changeSpeed = 120;//폭발 변환 시간
	
	public Explosion(Image image, int x, int y, int count){
		this.image = image;
		this.x = x;
		this.y = y;
		this.count = count;
		width = image.getWidth(null)/count;
		height = image.getHeight(null);
		active = true;
	}
	
	public void update(){
		long currentTime = System.currentTimeMillis();
		if(currentTime-prevChangedTime>changeSpeed){
			currentIndex++;
			if(currentIndex==count){
				active = false;
			}
			prevChangedTime = currentTime;
		}
		
	
	}
	
	public void render(Graphics g){
		if(active){
			g.drawImage(image,
				x,							//표시할 화면의 좌상단 x좌표
				y,							//표시할 화면의 좌상단 y좌표
				x+width,					//표시할 화면의 우하단 x좌표	
				y+height,					//표시할 화면의 우하단 y좌표
				width *currentIndex,		//원본 이미지에서 잘라낼 영역의 좌상단 x
				0,							//원본 이미지에서 잘라낼 영역의 좌상단 y
				width*(currentIndex + 1),	//원본 이미지에서 잘라낼 영역의 우하단 x
				height,						//원본 이미지에서 잘라낼 영역의 우하단 y
				null);						//원본 이미지에서 잘라내서 화면에 표시한다
		}
		
	}

}
